package com.wtgroup.demo.面试题.我的面试.华为OD笔试230627;

import java.util.Arrays;

/**
 * 数组X,数字K
 * 值 X[i]-X[i+1]-...-X[i+K-1]
 * 最接近中位数 (中位数: 排序后 N/2 位置数字)
 */

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Q2_最接近中位数 {
    /**
     * 语句转换
     * @param scores int整型一维数组 分数
     * @param K int整型
     * @return int整型
     */
    public int findTheStartPosition (int[] scores, int K) {
        // write code here
        int[] copyArr = Arrays.copyOf(scores, scores.length);
        Arrays.sort(copyArr);
        int target = copyArr[copyArr.length/2];

        int minDiff = Integer.MAX_VALUE;
        int ans = -1;
        for (int i = 0; i <= scores.length - K; i++) {
            int tmp = eval(scores, i, K);
            int currDiff = Math.abs(tmp - target);
            if (currDiff <= minDiff) {
                minDiff = currDiff;
                ans = i;
            }
        }

        return ans;
    }

    private int eval(int[] scores, int i, int k) {
        int ret = scores[i];
        for (int j = i+1; j < i + k; j++) {
            ret = ret - scores[j];
        }
        return ret;
    }
}
